#pragma once
#include "common.h"


class encoding
{
public:
			encoding		(void);
			~encoding		(void);
	int		Max				(int a, int b);
	int		VectorsCompare	(PSVECTOR sFirst, PSVECTOR sSecond);
	int		IdentifyChange	(int iFirst, int iSecond, int iWithStatus);
	int		ShortVector		(const int iCycles, const int iSignalId,  unsigned int* CodeWord, int iNoUpper);
	int		LongVector		(const int iValue, const int iCycles, unsigned int* CodeWord);
	int		LongRepeat		(const int iCycles, unsigned int* CodeWord, int iStatus);
	int		Encode			(const PSVECTOR sFirstVector, const PSVECTOR sLastVector, unsigned int *iCodeArray, int iIsDependant, int* iLongVectors);
	int		StartLoop		(void);
	int		EndLoop			(int iLoopCount);
	int		EncodeBlock		(PSBLOCK sBlockArray, int iNumberOfBlocks,  unsigned int* iCodeArray, int* iLongVectors, int* iMaxDwordsInLoop, int* iMarkers);
};
